package com.xaicode.auth.service;

import com.xaicode.auth.base.BaseMpService;
import com.xaicode.auth.entity.SysDept;
import com.xaicode.auth.security.domain.params.SysDeptQueryParam;

import java.util.List;

public interface ISysDeptService extends BaseMpService<SysDept> {

    List<SysDept> list(SysDeptQueryParam param);

    /**
     * 获取部门的所有上级部门名称
     *
     * @param deptId 部门id
     * @return 上级部门名称列表
     */
    List<String> getParentDeptNames(Integer deptId);

    /**
     * 获取子部门
     *
     * @param deptId .
     * @return .
     */
    List<Integer> getChildrenIds(Integer deptId);

    /**
     * 检查部门是否可删除
     */
    void checkCanDelete(List<Integer> deptIds);

    /**
     * 查询系统里的部门，并按照部门层级拼接部门名称
     */
    List<SysDept> listWithConcatenatedDeptName();
}
